perm filename EDUCAT.OUT[1,JRA] blob sn#544179 filedate 1980-10-18 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	****non-calculus people, please skip the next section*****
C00006 ENDMK
CāŠ—;
****non-calculus people, please skip the next section*****

As a further example, consider the standard definition of differentiation
of polynomials.
Note it is recursive: for example, the derivative of a sum is described as 
a sum of the
derivatives; the goal/sub-goal metaphor. We can express it in our notation:
\.

deriv(poly,x) = 
		\F2if\F1       is_constant(poly)  \F2then\F1  0  
	        \F2else if\F1 is_variable(poly)  \F2then if \F1 poly=x  \F2then\F1 1  \F2else\F1 0
  		\F2else if\F1 is-sum(poly)  \F2then\F1 sum( deriv(addend(poly),x)
					               deriv(augend(poly),x))
		... similarly for product

\J
what's new here is that "poly" and "x" are not numbers, but are algebraic
expressions; this algorithm manipulates abstract objects called polynomials
that have properties that we can test --is_constant, select --addend, and
construct new objects --sum. 


***** welcome back ********

Though, LISP was developed in 1959  and is now the second oldest high-level 
programming language still in use,
it has not yet reached a wide audience. There are two major reasons
for this: first,
it has only been available on large-scale, expensive 
computers since the problems that AI tackles tend to be very large and complex,
requiring large memories and highly interactive human interfaces. Both of these
requirements have been very costly in the past;
technology is now changing that. 

The second difficulty, is the
lack of  adequate texts. Even at the advanced level, LISP texts --past the
level of programming manuals--  have been 
slow in coming. My book, \F2Anatomy of LISP\F1, is the first to address the 
conceptual issues at the college level.
The real shame is that the computing concepts are well-within the grasp
of anyone  who has an understanding of algebra. In fact, the concepts can be
\F2used\F1 to help explicate the notions of functional notation.